import os
from openai import OpenAI
from flask import Flask, request, jsonify
import time
from flask_cors import CORS
import json


app = Flask(__name__)
CORS(app)


@app.route('/analysisPic', methods=['POST'])
def generate_token():
    data = request.json
    if not data or 'url' not in data:
        return jsonify({'error': 'Missing required fields'}), 400

    url = data['url']
    print("url",url)
    
    client = OpenAI(
        api_key="sk-b8575714afad46d2a2cd5156aa11b6b5",
        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    )
    
    completion = client.chat.completions.create(
        model="qwen2.5-vl-72b-instruct",
        messages=[{"role": "user","content": [
                {"type": "text","text": """
                图中是一道数学题目，请判断是否包含数学图形或者几何图形，如果包含，请用threejs准确的绘制一个三维的这个图形并返回源码，我已经有了页面骨架,我使用的是最新版的threejs，请你返回一个绘制的function代码就行。
                要求这个方法只要传入scene就能直接运行。特别注意：你使用threejs的版本必须要是最新的。
                
                特别注意：
                1.**请全部使用BUfferGeometry来绘制**
                2.**结果只包含纯代码，不需要任何格式，不要任何提示，不要任何解释。**
                3.**你返回的function名称固定为drawCoordinateAxes，有一个入参名字为scene,请在这个scene上绘制**
                """},
                {"type": "image_url",
                "image_url": {"url": url}}
                ]}]
        )

    print(completion.model_dump_json())
    
    return jsonify({'result': completion.model_dump_json()})
    

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)


